package es.ucm.fdi.pe.practica2.genetico2.mutacion;

import java.util.ArrayList;

import es.ucm.fdi.pe.practica2.genetico2.Alumno;
import es.ucm.fdi.pe.practica2.genetico2.CromosomaAlumnos;

public class MutacionIntercambio {

	
	void mutar(CromosomaAlumnos c){
		int posicion1=  (int) (Math.random()*(c.getN()-1));
		int posicion2=  (int) (Math.random()*(c.getN()-1));
		
		
		while(posicion1==posicion2){
			posicion1=  (int) (Math.random()*(c.getN()-1));
			posicion2=  (int) (Math.random()*(c.getN()-1));	
		}
		
		if(posicion1>posicion2){
			int tmp=posicion1;
			posicion1=posicion2;
			posicion2=tmp;
		}
		//System.out.println("Pos1: "+posicion1+" Pos2: "+posicion2);
		Alumno a;
		
		a=c.getGruposAlumnos().get(posicion1);
		c.getGruposAlumnos().set(posicion1, c.getGruposAlumnos().get(posicion2));
		c.getGruposAlumnos().set(posicion2, a);
	}

	public static void main(String args[]) throws Exception{
		Alumno a1 = new Alumno(101, 8.75); //Alumno normal 1
		a1.addExcluido(102);
		a1.addExcluido(103);
		a1.addExcluido(104);
//		System.out.println(a1.toString());
		
		Alumno a2 = new Alumno(201, 5.75); //Alumno normal 2
		a2.addExcluido(202);
		a2.addExcluido(203);
		a2.addExcluido(204);
//		System.out.println(a2.toString());
		
		Alumno a3 = new Alumno(301, 9.75); //Alumno normal 3
		a3.addExcluido(302);
		a3.addExcluido(303);
		a3.addExcluido(304);
//		System.out.println(a3.toString());
		
		Alumno a4 = new Alumno(401, 6.75); //Alumno normal 4
		a4.addExcluido(402);
		a4.addExcluido(403);
		a4.addExcluido(404);
//		System.out.println(a4.toString());
		
		Alumno a5 = new Alumno(501, 2.75); //Alumno normal 5
		a5.addExcluido(502);
		a5.addExcluido(503);
		a5.addExcluido(504);
//		System.out.println(a5.toString());
		
	//Alumno a6 = new Alumno(601, 3.75); //Alumno normal 6
//		a6.addExcluido(602);
//		a6.addExcluido(603);
//		a6.addExcluido(604);
//		System.out.println(a6.toString());
		
		ArrayList<Alumno> lista= new ArrayList<Alumno>();
		lista.add(a1);
		lista.add(a2);
		lista.add(a3);
		lista.add(a4);
		lista.add(a5);
//		lista.add(a6);
		for (int i=0;i<4;i++){
			System.out.println("Vuelta "+(i+1)+"---------");
			CromosomaAlumnos c1= new CromosomaAlumnos(3, lista);
			System.out.println(c1.toString());
			MutacionIntercambio m = new MutacionIntercambio();
			m.mutar(c1);
			System.out.println(c1.toString());
			System.out.println("----------");
		}
	}	
	
}
